relation-queries {prisma}

aliases
No value
tags
No value
description
No value
links
0180 Prisma 🌈 https://www.prisma.io/docs/orm/prisma-client/queries/relation-queries
status
μž‘μ„±μ€‘
project
false
area
false
resource
false
title
relation-queries {prisma}
created
2025-02-12T10:23:34
updated
2025-04-12T15:40:53

include β‡’ λ¦΄λ ˆμ΄μ…˜μ„ μ„ νƒλ§Œ ν•˜κΈ° μœ„ν•œ κ°„λ‹¨ν•œ μ˜΅μ…˜.

select β‡’ λ„€μŠ€νŒ…μ΄ κ°€λŠ₯ν•œ 볡합적인 μ˜΅μ…˜. μ΄λ¦„μ²˜λŸΌ νŠΉμ •ν•œ ν•„λ“œλ§Œμ„ μ„ νƒν•˜κΈ° μœ„ν•΄ μ‚¬μš©λœλ‹€.

μ•„λž˜λŠ” Chat GPT 4.5κ°€ μž‘μ„±ν•΄μ€€ μ΄ˆμ•ˆ

Prisma Relation Queries에 λŒ€ν•œ κ°€μ΄λ“œ

PrismaλŠ” λ°μ΄ν„°λ² μ΄μŠ€ μΏΌλ¦¬μ—μ„œ 관계 데이터λ₯Ό μ†μ‰½κ²Œ λ‹€λ£° 수 μžˆλ„λ‘ 두 κ°€μ§€ 핡심 μ˜΅μ…˜μΈ include와 selectλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 이 λ¬Έμ„œμ—μ„œλŠ” 두 μ˜΅μ…˜μ˜ μ‚¬μš©λ²•κ³Ό μœ μŠ€μΌ€μ΄μŠ€, 그리고 ꢌμž₯λ˜λŠ” 베슀트 ν”„λž™ν‹°μŠ€λ₯Ό μ†Œκ°œν•©λ‹ˆλ‹€.


1. include

includeλŠ” Prismaμ—μ„œ κ΄€κ³„λœ 데이터λ₯Ό κ°„λ‹¨ν•˜κ²Œ κ°€μ Έμ˜¬ λ•Œ μ‚¬μš©ν•˜λŠ” μ˜΅μ…˜μž…λ‹ˆλ‹€. λ³„λ„μ˜ λ³΅μž‘ν•œ 필터링 없이 κ΄€λ ¨λœ λͺ¨λ“  ν•„λ“œλ₯Ό ν•œ λ²ˆμ— λΆˆλŸ¬μ˜€λŠ” μš©λ„λ‘œ μ ν•©ν•©λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ

const userWithPosts = await prisma.user.findUnique({
  where: { id: 1 },
  include: { posts: true },
});

μœ μŠ€μΌ€μ΄μŠ€

베슀트 ν”„λž™ν‹°μŠ€


2. select

selectλŠ” νŠΉμ • ν•„λ“œλ§Œ μ„ νƒν•˜μ—¬ κ°€μ Έμ˜€κ±°λ‚˜, λ„€μŠ€νŒ…ν•˜μ—¬ λ³΅μž‘ν•œ 관계 데이터λ₯Ό μ •κ΅ν•˜κ²Œ 관리할 수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ

const userSelectiveData = await prisma.user.findUnique({
  where: { id: 1 },
  select: {
    name: true,
    email: true,
    posts: {
      select: {
        title: true,
        publishedAt: true,
      },
    },
  },
});

μœ μŠ€μΌ€μ΄μŠ€

베슀트 ν”„λž™ν‹°μŠ€


κ²°λ‘ 

두 μ˜΅μ…˜μ„ 적절히 μ‚¬μš©ν•˜μ—¬ 데이터 처리 μ„±λŠ₯을 κ·ΉλŒ€ν™”ν•˜κ³ , μœ μ§€λ³΄μˆ˜μ„±μ„ λ†’μ΄μ„Έμš”.